package com.ruoyi.print.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.print.mapper.PhotoTaskMapper;
import com.ruoyi.print.domain.PhotoTask;
import com.ruoyi.print.domain.SinglePhoto;
import com.ruoyi.print.service.IPhotoTaskService;
import com.ruoyi.print.service.ISinglePhotoService;

/**
 * 照片打印任务Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-08-03
 */
@Service
public class PhotoTaskServiceImpl implements IPhotoTaskService 
{
    @Autowired
    private PhotoTaskMapper photoTaskMapper;

    @Autowired
    private ISinglePhotoService singlePhotoService;

    /**
     * 查询照片打印任务
     * 
     * @param photoTaskId 照片打印任务主键
     * @return 照片打印任务
     */
    @Override
    public PhotoTask selectPhotoTaskByPhotoTaskId(Long photoTaskId)
    {
        return photoTaskMapper.selectPhotoTaskDetailByPhotoTaskId(photoTaskId);
    }

    /**
     * 查询照片打印任务列表
     * 
     * @param photoTask 照片打印任务
     * @return 照片打印任务
     */
    @Override
    public List<PhotoTask> selectPhotoTaskList(PhotoTask photoTask)
    {
        return photoTaskMapper.selectPhotoTaskList(photoTask);
    }

    /**
     * 新增照片打印任务
     * 
     * @param photoTask 照片打印任务
     * @return 结果
     */
    @Override
    public int insertPhotoTask(PhotoTask photoTask)
    {
        photoTask.setCreateTime(DateUtils.getNowDate());
        return photoTaskMapper.insertPhotoTask(photoTask);
    }

    /**
     * 修改照片打印任务
     * 
     * @param photoTask 照片打印任务
     * @return 结果
     */
    @Override
    public int updatePhotoTask(PhotoTask photoTask)
    {
        photoTask.setUpdateTime(DateUtils.getNowDate());
        return photoTaskMapper.updatePhotoTask(photoTask);
    }

    /**
     * 批量删除照片打印任务
     * 
     * @param photoTaskIds 需要删除的照片打印任务主键
     * @return 结果
     */
    @Override
    public int deletePhotoTaskByPhotoTaskIds(Long[] photoTaskIds)
    {
        return photoTaskMapper.deletePhotoTaskByPhotoTaskIds(photoTaskIds);
    }

    /**
     * 删除照片打印任务信息
     * 
     * @param photoTaskId 照片打印任务主键
     * @return 结果
     */
    @Override
    public int deletePhotoTaskByPhotoTaskId(Long photoTaskId)
    {
        return photoTaskMapper.deletePhotoTaskByPhotoTaskId(photoTaskId);
    }

    /**
     * 根据任务ID查询该任务下的所有照片
     * 
     * @param photoTaskId 照片打印任务主键
     * @return 照片列表
     */
    @Override
    public List<SinglePhoto> selectSinglePhotosByPhotoTaskId(Long photoTaskId)
    {
        return singlePhotoService.selectSinglePhotosByPhotoTaskId(photoTaskId);
    }

    /**
     * 批量添加照片到任务
     * 
     * @param photoTaskId 照片打印任务主键
     * @param photos 照片列表
     * @return 结果
     */
    @Override
    public int insertSinglePhotos(Long photoTaskId, List<SinglePhoto> photos)
    {
        int result = 0;
        for (SinglePhoto photo : photos) {
            photo.setPhotoTaskId(photoTaskId);
            photo.setCreateTime(DateUtils.getNowDate());
            result += singlePhotoService.insertSinglePhoto(photo);
        }
        return result;
    }
}
